#ifndef _STATE_H_
#define _STATE_H_

#include <SFML\System.hpp>
#include <SFML\Graphics.hpp>
#include <SFML\Window.hpp>

namespace Engine
{
	class State
	{
		public:
		virtual void Init() = 0;
		virtual void Cleanup() = 0;

		virtual void Pause() = 0;
		virtual void Resume() = 0;

		virtual void HandleEvent(sf::Event Event) = 0;
		virtual void Update() = 0;
		virtual void Draw(sf::RenderWindow &window) = 0;

	protected:
		State() { }
	};
}

#endif